package Day3Method;

import java.util.Scanner;

/*
1.
java中方法的重载与什么有关，如果两个方法的返回值不同其余相同，是否可以构成方法的重载?

java允许对相同功能的一类方法的名称相同 名称相同的条件为必须要保证
方法的参数的类型个数和排列顺序不同。像这种满足上述条件的方法之间互为重载关系
与方法名和参数类型有关
与返回值无关
 */

/*
2.
变量作为参数传递，如果在方法中变量的值被改变会不会影响原变量的值，为什么?

 引用数据类型传递的是对象的引用地址,无论是主方法中还是被调用的方法中,变量的保存的地址是同一个地址.
        就是说,在主方法中调用方法是,实际参数将地址赋给形参.如果在被调用的方法中更改了相关对象,回到主方法中
      有相同地址的变量指向的对象也会被更改
    形参，不会改变原有值
	引用变量的直接操作相当于值传递，不会改变原来的引用变量
	引用变量的属性的操作，会改变原有引用的属性，相当于传址调用

 */
public class Day3Work {
    public static void main(String[] args) {
    int sum=0;
//    sumAdd(sum);
//    sumWei(sum);
  sumFun(4.4,4.4,5.63);
    }
    public static void sumAdd(int sum){
        System.out.println("输入一个整数n,求1-n累加和:");
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        int a = 0;
        for (int i = 0; i < score; i++) {
            a+=i;
        }
        System.out.println(a);
    }
    public static void sumWei(int sum){
        System.out.println("输入一个整数,求他是几位数:");
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        int count = 0;
        while (score != 0) {
            score /= 10;
            count++;
        }
        System.out.println("这个整数是"+count+"位数");
    }

    //返回两个int值中的最大值
    public static void sumFun(int x,int y){

        if(x>y){
            System.out.println("x比y大----"+x);
        }
        else if(x==y){
            System.out.println("相等");
        }else{
            System.out.println("y比x大----"+y);
        }

    }
//返回两个double值中的最大值
    public static void sumFun(double x,double y){

        if(x>y){
            System.out.println("x比y大----"+x);
        }else if(x==y){
            System.out.println("相等");
        }else{
            System.out.println("y比x大----"+y);
        }
    }
//    返回三个double值中的最大值
    public static void sumFun(double x,double y,double z){
       double max = x;
       if(max<y){
           max=y;
       }
       if(max<z){
           max=z;
       }
        System.out.println("最大值为"+max);
    }
}
